毕加索中的java错误get()无法应用于(安卓.content.Context)
我正在构建一个应用程序,当我试图释放apk时,我从毕加索的McContext中得到了这个错误,我在gradle中添加了com.squareup.picasso:picasso:2.5.2
实现,但仍然存在问题,我将With()
替换为get()
和同样的问题:
get( )in Picasso cannot be applied to(安卓.content.Context)
package com.maker.Adapter;
import 安卓.content.Context;
import 安卓.content.CursorLoader;
import 安卓.database.Cursor;
import 安卓.graphics.Bitmap;
import 安卓.graphics.BitmapFactory;
import 安卓.net.Uri;
import 安卓.provider.MediaStore;
import 安卓x.recyclerview.widget.RecyclerView;
import 安卓.util.Log;
import 安卓.view.LayoutInflater;
import 安卓.view.View;
import 安卓.view.ViewGroup;
import 安卓.widget.ImageView;
import 安卓.widget.TextView;
import com.maker.MediaStorage.CursorRecyclerViewAdapter;
import com.maker.R;
import com.squareup.picasso.Picasso;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Arrays;
public class MostRecentImagesAdapter extends CursorRecyclerViewAdapter<MostRecentImagesAdapter.ViewHolder> {
private Context mContext;
private OnItemClickListener onItemClickListener;
public MostRecentImagesAdapter(Context context, Cursor cursor) {
super(context, cursor, "");
mContext = context;
}
@Override
public void onBindViewHolder(final ViewHolder viewHolder, final Cursor cursor, final int position) {
viewHolder.setData(cursor);
int int_ID = cursor.getInt(cursor.getColumnIndex(MediaStore.Images.Media._ID));
getThumbnail(int_ID, viewHolder.imgSd);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.row_storeage_image, parent, false);
return new ViewHolder(itemView);
}
public void setOnItemClickListener(OnItemClickListener listener) {
onItemClickListener = listener;
}
public OnItemClickListener getOnItemClickListener() {
return onItemClickListener;
}
public interface OnItemClickListener {
void onItemClick(ViewHolder item, int position);
}
public class ViewHolder extends RecyclerView.ViewHolder {
private ImageView imgSd;
private TextView txtSd;
public ViewHolder(View v) {
super(v);
imgSd = (ImageView) v.findViewById(R.id.imgSd);
txtSd = (TextView) v.findViewById(R.id.txtSd);
}
public void setData(Cursor cursor) {
int uriIndex = getUriIndex(getCursor());
String itemUri = getCursor().getString(uriIndex) + "/" + getCursor().getString(getCursor().getColumnIndexOrThrow(MediaStore.Video.Media._ID));
txtSd.setText(itemUri);
}
}
private int getUriIndex(Cursor c) {
int uriIndex;
String[] columnNames = {
MediaStore.Video.Media.INTERNAL_CONTENT_URI.toString(),
MediaStore.Video.Media.EXTERNAL_CONTENT_URI.toString()
};
int i = 0;
for (String columnName : Arrays.asList(columnNames)) {
i++;
Log.e(":Loadin", i + "");
uriIndex = c.getColumnIndex(columnName);
if (uriIndex >= 0) {
return uriIndex;
}
// On some phones and/or Android versions, the column name includes the double quotes.
uriIndex = c.getColumnIndex("\"" + columnName + "\"");
if (uriIndex >= 0) {
return uriIndex;
}
}
return -1;
}
private Bitmap getThumbnail(int id, ImageView imageView) {
final String thumb_DATA = MediaStore.Video.Thumbnails.DATA;
final String thumb_IMAGE_ID = MediaStore.Video.Thumbnails.VIDEO_ID;
final Uri thumbUri = MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI;
String[] thumbColumns = {thumb_DATA, thumb_IMAGE_ID};
CursorLoader thumbCursorLoader = new CursorLoader(
mContext,
thumbUri,
thumbColumns,
thumb_IMAGE_ID + "=" + id,
null,
null);
Cursor thumbCursor = thumbCursorLoader.loadInBackground();
Bitmap thumbBitmap = null;
if (thumbCursor.moveToFirst()) {
int thCulumnIndex = thumbCursor.getColumnIndex(thumb_DATA);
String thumbPath = thumbCursor.getString(thCulumnIndex);
Picasso.get(mContext).load(new File(thumbPath)).into(imageView);
}
return thumbBitmap;
}
private Bitmap decodeFile(File f) {
try {
// Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f), null, o);
// The new size we want to scale to
final int REQUIRED_SIZE = 350;
// Find the correct scale value. It should be the power of 2.
int scale = 1;
while (o.outWidth / scale / 2 >= REQUIRED_SIZE &&
o.outHeight / scale / 2 >= REQUIRED_SIZE) {
scale *= 2;
}
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
} catch (FileNotFoundException e) {
}
return null;
}
}
# 1 楼答案
只需使用: